先上個事件風暴示意圖
將領域中所發生的活動當作一系列的離散事件來建立 Model。每個事件都用 Domain Object 來表示 ... 領域事件是 Domain Model 組成的一部份,表示領域中所發生的事情。
[from Eric Evans]
通常領域事件會用橘色表示,並以過去式描述,我們利用它識別出前後因果關係,來一窺遊戲的全貌吧。
把事件都以過去式呈現「...已...」
按照時間順序排列
補上 Command: 「xx 做了 xx」
以及 Actor: 誰做的
至此我們有了第一版的 Happy Path 了
嘗試唸唸看有沒有會卡住的地方
a: 「系統」初始化遊戲
e: 遊戲已設置
e: 遊戲已開始
e: 回合已開始
rule: 由起始玩家開始選擇職業
a: 「玩家」選擇礦工
e: 礦工已選擇
e: 礦工階段已開始
a: 「系統」執行礦工行動
e: 礦工動作已執行
rule: 所有玩家已執行動作(沒有人可以執行動作了)
e: 礦工階段已結束
policy: 滿足了遊戲結束條件
e: 遊戲已結束
這裡做個流程簡化,將「policy: 遊戲結束條件」指定為永遠滿足
使得 第一位玩家 選擇了礦工階段後,遊戲就會結束。
以上不代表明天會做,如有雷同純屬巧合
SPT (Side Project Taiwan) 的宗旨是藉由Side Project開發來成就自我,透過持續學習和合作,共同推動技術和專業的發展。我們相信每一個參與者,無論是什麼專業,都能在這個社群中找到屬於自己的成長空間。
歡迎所有對Side Project開發有興趣的人加入我們,可以是有點子來找夥伴,也可以是來尋找有興趣的Side Project加入,邀請大家一同打造一個充滿活力且有意義的技術社群!
Discord頻道連結:https://sideproj.tw/dc